The computer industry has several connectivity standards for peripherals, the most popular in recent years being the universal serial bus (USB). USB and other connectivity standards have migrated beyond computers to allow connectivity between a myriad of electronic devices. Some of the most widely used USB peripherals have been devices that provide data storage and wireless connectivity. There are several common USB “types” that have further defined connectivity protocols and conventions that are specific for a particular usage. These definitions enable USB devices that comply with these protocols to interoperate with host systems without needed special software to be added to the host. For example, a common USB connectivity protocol is the USB Mass Storage specification that enables USB hosts to write/read data to/from any USB peripheral that follows that specification.
Multi-functional peripheral devices are known. For example, there are USB peripherals that contain a central processing unit (CPU) to enable more useful functions, such as encryption/decryption to data storage. Also, combinations of data storage and wireless connectivity, for example, have been built into a single peripheral. When these multi-functional peripherals are USB devices, they typically behave as logically separate USB devices, even though they are physically in a single peripheral device. Each function complies with its respective USB profile, which defines interoperability between the host and each function, but these two functions operate exclusively of each other. For example, data storage would independently use the USB Mass Storage protocol, while a wireless function would use the USB Wireless Networking protocol. These independent functions may require separate software drivers for the host or require the host to support multiple USB protocols to access the different functions in the peripheral.
Existing USB architectures consist of the following types. FIG. 1 shows a typical prior art USB system 10 including a USB host 12 connected to a USB peripheral device 14. The USB storage peripheral 14 may be a solid-state thumb drive, rotating media hard-drive, CD, DVD drive or the like. There is a USB interface 16 that consists of a state machine to run the USB storage protocol, and this connects to the physical data storage 18, accessing the data in an array consisting of “blocks” of data (e.g., addressable 512 blocks) for reading and/or writing. The USB host 12 defines the higher level data structures, such as files, folders, directories, and storage management arrays (e.g., file allocation tables).
FIG. 2 shows a prior art USB communication system 20, which has a similar architecture as the system 10 of FIG. 1, except that the USB peripheral device 22 includes wireless or wireline communication electronics 24 coupled to the UBS interface 16. This arrangement may correspond to a USB standard or require a special software driver on the host 12 to properly interface to the communication electronics 24.
FIG. 3 depicts a prior art system 30 where a USB peripheral 32 combines two functions, data storage 18 and wireless or wireline communication electronics 24, within a single USB peripheral 32. The USB protocol allows multiple logical paths that the USB host 12 sees as two virtually separate USB peripherals. While there is some physical sharing of internal peripheral components by the storage and wireless functions in this example, such as sharing power supplies and the USB slave controller, there is not any direct communications between the storage and the wireless functions within the USB peripheral 32. They are treated logically as mutually exclusive devices.
FIG. 4 shows a prior art system 40 where a USB peripheral 42 includes a function internal to the USB peripheral device 42 that is transparent to the USB host 12, in this case, encryption/decryption 44. The USB host 12 sees the data storage 18 as a normal, unencrypted data storage array, but if proper authentication is not correct, such as with a fingerprint sensor on the device 42 or password, the decryption will fail and the USB host 12 will not be able to access the data storage 18.